perm filename PRED2.FAI[SYS,HE] blob
sn#020401 filedate 1972-12-06 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 TITLE OCULT - A HIDDEN LINE ELIMINATOR - AUGUST 1972.
00005 00003 ZDEPTH(F,V)
00007 00004 RINGIN(E,R,N) - RING IN E JUST LEFT OF R AT Nth WORD.
00009 00005 SUBR(POTEN.)
00010 ENDMK
⊗;
TITLE OCULT - A HIDDEN LINE ELIMINATOR - AUGUST 1972.
COMMENT /
/
;GEOMETRIC 2D LOCII ROUTINES.
;QEV(E,V).
SUBR(QEV)
BEGIN QEV
ACCUMULATORS{E,V}
LAC V,ARG1
LAC E,ARG2
LAC 1,CC(E)
LAC BB(E)↔FMPR YPP(V)↔FADR 1,0
LAC AA(E)↔FMPR XPP(V)↔FADR 1,0
RET2
BEND
;QFEV(F,E,V).
SUBR(QFEV)
BEGIN QFEV
ACCUMULATORS{E,V}
LAC V,ARG1
LAC E,ARG2
LAC 1,CC(E)
LAC BB(E)↔FMPR YPP(V)↔FADR 1,0
LAC AA(E)↔FMPR XPP(V)↔FADR 1,0
PFACE 0,E↔CAME 0,ARG3↔MOVNS 1
RET3
BEND
;CROSSING(X,Y,E1,E2).
SUBR(CROSSING)
BEGIN CROSSING
ACCUMULATORS{TT,XPTR,YPTR,E1,E2}
LAC E2,ARG1
LAC E1,ARG2
LAC YPTR,ARG3
LAC XPTR,ARG4
LAC AA(E1)↔FMPR BB(E2)
LAC 1,AA(E2)↔FMPR 1,BB(E1)↔FSBR 0,1↔DAC TT
LAC BB(E1)↔FMPR CC(E2)
LAC 1,BB(E2)↔FMPR 1,CC(E1)↔FSBR 0,1↔FDVR 0,TT↔DAC(XPTR)
LAC CC(E1)↔FMPR AA(E2)
LAC 1,CC(E2)↔FMPR 1,AA(E1)↔FSBR 0,1↔FDVR 0,TT↔DAC(YPTR)
RET4
BEND
;ZDEPTH(F,V)
SUBR(ZDEPTH)
BEGIN ZDEPTH
ACCUMULATORS{F,V}
LAC V,ARG1
LAC F,ARG2
LAC 1,KK(F)
LAC AA(F)↔FMPR XPP(V)↔FSBR 1,0
LAC BB(F)↔FMPR YPP(V)↔FSBR 1,0
FDVR 1,CC(F)
RET2
BEND
;ZDALT(F,X,Y)
SUBR(ZDALT)
BEGIN ZDALT
ACCUMULATORS{F}
LAC F,ARG3
LAC 1,KK(F)
LAC AA(F)↔FMPR ARG2↔FSBR 1,0
LAC BB(F)↔FMPR ARG1↔FSBR 1,0
FDVR 1,CC(F)
RET3
BEND
;UFACE(E,V)
SUBR(UFACE)
BEGIN UFACE
ACCUMULATORS{E,V}
LAC E,ARG2
NVT V,E↔CAMN V,ARG1↔GO[NUF 1,E↔RET2]
PVT V,E↔CAMN V,ARG1↔GO[PUF 1,E↔RET2]
FATAL(UFACE)
LIT
BEND
;UFACE.(Q,E,V)
SUBR(UFACE.)
BEGIN UFACE.
ACCUMULATORS{Q,E,V}
CDR E,ARG2
CDR Q,ARG3
NVT V,E↔CAMN V,ARG1↔GO[NUF. Q,E↔RET3]
PVT V,E↔CAMN V,ARG1↔GO[PUF. Q,E↔RET3]
FATAL(UFACE.)
LIT
BEND
;RINGIN(E,R,N) - RING IN E JUST LEFT OF R AT Nth WORD.
SUBR RINGIN
BEGIN RINGIN
ACCUMULATORS{Q,E,R}
CDR E,ARG3
CDR R,ARG2
LAC ARG1
DAP .+1↔CDR Q,(E)↔JUMPE Q,L
CAME Q,E↔RET3; E AIN'T EMP